The present invention relates generally to the field of digital computers, and in particular, relates to apparatus for controlling computer graphics displays.
An important application of computer graphics involves the creation of realistic images of three dimensional objects. Designers of three dimensional objects such as automobiles, aircraft and other structures may wish to have a visual representation of a preliminary design, to facilitate implementation of interactive design changes prior to the prototype stage. Creating realistic computer generated images is a faster, less expensive and more effective method of evaluating preliminary designs than is constructing models and prototypes. In particular, computer generated images allow a greater number of alternative designs to be evaluated in a shorter time period. Often, the design work itself is performed on a computer system, using a computer aided design (CAD) or other engineering workstation. In such a case, a digitized representation of the three dimensional object is already available to use as the basis for the computer generated image.
Simulation systems are another application for computer generated three dimensional images. Such systems utilize images which not only must appear realistic, but which also must change dynamically.
One approach which helps produce visual realism in computer generated images is that of surface shading. Variations in surface shading add visual information of the type normally found in a visual environment, so that an observer's depth perception mechanisms can properly resolve any ambiguities caused when three dimensional objects are projected into two dimensions. Shaded image generation is therefore an important capability of modern graphics workstations. Moreover, engineers and designers utilizing such workstations seek "solid-looking" models to convey more shape information. Shaded image generation helps create realistic solid-looking models.
Realism in computer generated images is also enhanced by surface detail, referred to as "texture." In computer graphics, "texture" is generally considered to subsume two aspects. The first aspect of texture is adding the appearance of roughness to a smooth surface. Incorporating the appearance of roughness to a surface is primarily a mathematical normal vector perturbation operation. The second aspect is the addition of a separately specified pattern to a smooth surface. After the pattern is added, the surface still appears smooth. Adding a pattern to a smooth surface in this way is largely a mapping operation, referred to as "texture mapping."
Texture mapping is an important technique in computer graphics and several methods have been developed for implementing texture mapping. One such method is described in "Real-Time Manipulation of Texture Mapped Surfaces," Oka, et al, Computer Graphics, Volume 21, No. 4, pp, 181-188, 1987. Texture mapping is also discussed generally in Rogers, David F., "Procedural Elements For Computer Graphics," McGraw-Hill, 1985, pp. 354-363.
Because the basis of adding texture patterns to three dimensional surfaces is a mapping operation, texture mapping involves a transformation from one coordinate system to another. In Particular, these coordinate systems can be referred to as texture space, object space, and image space. The texture pattern is defined in a two-dimensional coordinate system (u,v) in texture space, the three dimensional surface is defined in a three-dimensional coordinate system (x', y', z') in object space and the output display screen is defined in a two-dimensional coordinate system (x,y) in image space. Thus, conceptually, texture mapping transforms a texture plane. (u,v) onto a three dimensional surface, (x', y', z'), and then projects the transformed texture plane into the output display screen coordinate system (x,y).
An example of conventional texture mapping is a computer graphics rendering of the label on a soft drink can. An image of the "unrolled" label must first be generated. The "unrolled" label is defined in texture space. Next, the form of the can is rendered in object space. Conventionally, the cylindrical form of the can is rendered by generating a set of polygons. The geometrical form of the can is thus defined in object space. The texture (unrolled label) is transformed onto the three dimensional surface representation in object space (the cylindrical form), and then is projected into image space (the output display screen). The color and intensity of each picture element (pixel) in the display is accordingly a function of the transformation of the texture into object space and the mapping from object space into image space.
Prior art texture mapping methods are computationally intensive, requiring the calculation of large groups of values. Moreover, most prior art texture mapping methods exist in exclusively software implementations, requiring the execution of multiple-cycle program steps. Conventional texture mapping systems are therefore slow and require considerable processor and memory resources.
There accordingly exists a need for texture mapping methods and apparatus for computer graphics display controller systems that can execute texture mapping at high speed, with minimum cost, complexity and processor and memory overhead.
It is thus an object of the invention to provide improved texture mapping apparatus.
It is a further object of the invention to provide texture mapping apparatus which can execute texture mapping in real time.
It is another object of the invention to provide an efficient and inexpensive system for texture mapping, utilizing interpolation techniques.
Other general and specific objects of the invention will in part be obvious and will in part appear hereinafter.